<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>
 <parent>
  <artifactId>jsr330activator.testbundles</artifactId>
  <groupId>no.steria.osgi.jsr330activator</groupId>
  <version>1.1.1-SNAPSHOT</version>
 </parent>

 <artifactId>jsr330activator.testbundle1</artifactId>
 <packaging>bundle</packaging>

 <name>jsr330activator.testbundle1 OSGi Bundle</name>

 <properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 </properties>

 <dependencies>
  <dependency>
   <groupId>org.osgi</groupId>
   <artifactId>org.osgi.core</artifactId>
   <version>4.3.0</version>
   <scope>provided</scope>
  </dependency>
  <dependency>
   <groupId>no.steria.osgi.jsr330activator</groupId>
   <artifactId>jsr330activator.implementation</artifactId>
   <version>${project.version}</version>
  </dependency>
  <dependency>
   <groupId>org.apache.servicemix.bundles</groupId>
   <artifactId>org.apache.servicemix.bundles.javax-inject</artifactId>
   <version>1_2</version>
   <scope>provided</scope>
  </dependency>
 </dependencies>

 <build>
  <plugins>
   <plugin>
    <groupId>org.apache.felix</groupId>
    <artifactId>maven-bundle-plugin</artifactId>
    <version>2.3.7</version>
    <extensions>true</extensions>
    <configuration>
     <instructions>
      <Bundle-Activator>no.steria.osgi.jsr330activator.Jsr330Activator</Bundle-Activator>
      <Export-Package>no.steria.osgi.jsr330activator.testbundle1</Export-Package>
     </instructions>
    </configuration>
   </plugin>
  </plugins>
 </build>

 <profiles>
  <profile>
   <id>build-for-felix</id>
   <dependencies>
    <dependency>
     <groupId>org.apache.felix</groupId>
     <artifactId>org.apache.felix.main</artifactId>
     <version>4.0.3</version>
     <scope>provided</scope>
    </dependency>
    <!-- To include a shell:
         <dependency>
         <groupId>org.apache.felix</groupId>
         <artifactId>org.apache.felix.gogo.shell</artifactId>
         <version>0.10.0</version>
         </dependency>
    -->
   </dependencies>
   <build>
    <plugins>
     <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-antrun-plugin</artifactId>
      <version>1.7</version>
      <executions>
       <execution>
        <id>compile</id>
        <phase>package</phase>
        <goals>
         <goal>run</goal>
        </goals>
        <configuration>
         <target>
          <pathconvert property="plugins.jars" pathsep="${path.separator}">
           <path refid="maven.runtime.classpath" />
           <map from="${project.build.directory}${file.separator}classes" to="" />
          </pathconvert>
          <pathconvert pathsep=" " property="bundles">
           <path path="${plugins.jars}" />
           <mapper>
            <chainedmapper>
             <flattenmapper />
             <globmapper from="*" to="file:modules/*" casesensitive="no" />
            </chainedmapper>
           </mapper>
          </pathconvert>
          <propertyfile file="${project.build.directory}/config.properties">
           <entry key="felix.auto.start" value="${bundles} file:modules/${project.build.finalName}.jar" />
           <entry key="org.osgi.framework.bootdelegation" value="*" />
          </propertyfile>
          <copy file="${maven.dependency.org.apache.felix.org.apache.felix.main.jar.path}" tofile="${project.build.directory}/felix.jar" />
         </target>
        </configuration>
       </execution>
      </executions>
     </plugin>
     <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-assembly-plugin</artifactId>
      <version>2.3</version>
      <executions>
       <execution>
        <id>create-executable-jar</id>
        <phase>package</phase>
        <goals>
         <goal>single</goal>
        </goals>
        <configuration>
         <descriptors>
          <descriptor>${basedir}/src/main/assembly/felix.xml</descriptor>
         </descriptors>
         <finalName>${project.build.finalName}</finalName>
        </configuration>
       </execution>
      </executions>
     </plugin>
    </plugins>
   </build>
  </profile>
  <profile>
   <id>run-on-felix</id>
   <dependencies>
    <dependency>
     <groupId>org.apache.felix</groupId>
     <artifactId>org.apache.felix.main</artifactId>
     <version>4.0.3</version>
     <scope>provided</scope>
    </dependency>
    <!-- org.apache.felix:org.apache.felix.gogo.shell:0.6.1 useless from Maven since stdin is swallowed -->
   </dependencies>
   <build>
    <plugins>
     <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-antrun-plugin</artifactId>
      <version>1.7</version>
      <configuration>
       <target>
        <property name="vm.args" value="" />
        <pathconvert property="plugins.jars" pathsep="${path.separator}">
         <path refid="maven.runtime.classpath" />
         <map from="${project.build.directory}${file.separator}classes" to="" />
        </pathconvert>
        <makeurl property="urls" separator=" ">
         <path path="${plugins.jars}" />
         <path location="${project.build.directory}/${project.build.finalName}.jar" />
        </makeurl>
        <propertyfile file="${project.build.directory}/run.properties">
         <entry key="felix.auto.start" value="${urls}" />
         <entry key="felix.auto.deploy.action" value="uninstall,install,update,start" />
         <entry key="org.osgi.framework.storage" value="${project.build.directory}${file.separator}felix-cache" />
         <entry key="org.osgi.framework.bootdelegation" value="*" />
        </propertyfile>
        <makeurl property="run.properties.url" file="${project.build.directory}/run.properties" />
        <java fork="true" jar="${maven.dependency.org.apache.felix.org.apache.felix.main.jar.path}">
         <sysproperty key="felix.config.properties" value="${run.properties.url}" />
         <jvmarg line="${vm.args}" />
        </java>
       </target>
      </configuration>
     </plugin>
    </plugins>
   </build>
  </profile>
 </profiles>
 <description>An OSGi bundle used in integration tests.  This bundle exports the package containing the service definition for HelloService and imports the Jsr330BundleActivator and javax.inject from the OSGi runtime and uses the Jsr330BundleActivator to find a provider for HelloService and expose the service to listeners.</description>
</project>
